Methods and systems for network terminal identification

ABSTRACT

A system and method for identifying network terminals includes: initiating a service request at a network terminal by an Internet user; and transmitting network terminal information from the network terminal to a fingerprinting service. In an embodiment, the fingerprinting service (a) uses the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and (b) stores the Device ID and user data concerning the Internet user in a Device ID database.

FIELD

This invention relates systems for determining attributes of network terminals and, more particularly, determining attributes of network terminals making a request for streaming video content.

BACKGROUND

Advertising is a common way or seller of goods and/or services to generate sales and/or to initiate, maintain and increase brand awareness. In traditional media, such as television and print media, an advertisement may be seen by a wide demographic audience. Generally, only a small percentage of the audience will have any interest in purchasing the goods or services. Also, with traditional media, there is typically a limited supply of space for advertisements. In the art, the amount of resources (e.g., physical space, time, etc.) available for advertising is sometimes referred to as “inventory.”

In order to optimize their advertising investment, online advertisers try to choose among the immense inventory available so as to place their video advertisements for optimal results. This can be a hit-or-miss process whereby brand managers assume certain demographics for their ideal audience (e.g. males ages 18-35 who like fast cars) and then choose publishers that cater to that demographic profile (e.g. a website dedicated to reviewing race cars). However, this does not entirely address the ultimate goal of most brand advertisers: i.e. not only making the right placement for their advertisement but also reaching the right audience at the right time.

In today's connected world of devices, most of consumers' media time is spent in front of four video screens or “terminals”, namely their computer, smartphone, tablet and television screens. As used herein, the terms “screen”, “user device”, and “network terminal 18” may be used synonymously. The type of user device selected may be dependent upon the context of where they are located (workplace, home, travelling, etc.), what we they want to achieve (shop, make travel plans, watch video, etc.) and how long will it take to achieve their desired results.

Google in The New Multi-screen World: Understanding Cross-platform Consumer Behavior, dated August 2012, and hereafter referred to as Google Multi-Screen, calls this phenomenon as “the new multi-screen world” As explained in Google Multi-Screen, there are at least two different modes of consumer's behavior in context of multi-screen usage, namely: 1) sequential screening as a user moves between screens; and 2) Simultaneous screening where we use multiple screens at the same time.

Network terminals (e.g. personal computers, laptops, etc.) provided with traditional network browsers (e.g. Google Chrome, Internet Explorer, Firefox, Safari etc.) typically have the functionality of providing a “cookie” which tracks browsing activities, personal data, preferences, etc. of a user. For example, cookies have been used to provide relevant advertisements to users of network terminals. However, users have become increasing wary of cookies, primarily due to privacy issues, and increasing disable the cookie function in their browsers or use cookie-blocking services. Also, some providers of browser software, responding to user demand, are starting to block cookies to varying degrees. For example, Safari has a default setting which blocks all third party cookies. Also, many cookies have an expiration date and many network terminals have applications with network browsing capabilities (e.g. apps in smartphones, tablets, etc.) that don't have cookies. As a result, user cookies are often not available to service providers such as, for example, advertisers so that they can customize the delivery of advertisements to a user.

SUMMARY

Various examples are set forth herein for the purpose of illustrating various combinations of elements and acts within the scope of the disclosures of the specification and drawings. As will be apparent to those of skill in the art, other combinations of elements and acts, and variations thereof, are also supported herein.

In an embodiment, set forth by way of example but not limitation, customized SDK software is embedded in network devices to provide information concerning the network devices and/or the users of the network devices when making an ad request. This network device information (“data”) can be analyzed and enhanced with other data sources to generate a “fingerprint” for the network device which can be associated with a unique device ID. By using a device ID, customized services for a network terminal and/or its user can be provided.

In an embodiment, set forth by way of example and not limitation, a system for identifying network terminals includes a network terminal having a first digital processor, a first non-transient computer readable media, and a first network interface. In this example embodiment, the first computer readable media includes program instructions executable on the first digital processor for: initiating a service request by an Internet user with the network terminal; and transmitting network terminal information via the first network interface. This example embodiment also includes a fingerprinting service system having a second digital processor, a second non-transient computer readable media, and a second network interface, where the second computer readable media includes program instructions executable on the second digital processor for: receiving the network terminal information via the second network interface; using the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and storing the Device ID and user data in a Device ID database. In an additional example embodiment, the system further includes a service providing system including a third digital processor, a third non-transient computer readable media, and a third network interface, the third computer readable media including program instructions executable on the third digital processor for: retrieving user data related to the network terminal from the Device ID database; and providing a service to the Internet user that is configured for the Internet user in accordance with user data.

In an embodiment, set forth by way of example and not limitation, a method for identifying network terminals includes: initiating a service request at a network terminal by an Internet user; and transmitting network terminal information from the network terminal to a fingerprinting service which: (a) uses the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and (b) stores the Device ID and user data concerning the Internet user in a Device ID database.

An advantage of fingerprinting network terminals with the processes set forth herein is that they do not require cookies, which can expire or be blocked, and the results are entirely device-specific. For example, a change in configuration or operating system version can result in the network terminal becoming even more unique when a historical set of its fingerprints is examined.

Another advantage of example embodiments is that the fingerprinting of network terminals can potentially identify the one or more users of the network terminal, allowing for the custom-tailoring of services for the user(s).

These and other examples of combinations of elements and acts supported herein as well as advantages thereof will become apparent to those of skill in the art upon a reading of the following descriptions and a study of the several figures of the drawing.

BRIEF DESCRIPTION OF DRAWINGS

Several examples will now be described with reference to the drawings, wherein like elements and/or acts are provided with like reference numerals. The examples are intended to illustrate, not limit, concepts disclosed herein. The drawings include the following figures:

FIG. 1 illustrates an example network system supporting a network terminal identification process;

FIG. 2 is a block diagram of an example computer, computerized device, proxy and/or server which may form a part of the system of FIG. 1;

FIG. 3 is a block diagram of an example ad fulfillment system which can implement a network terminal identification process;

FIG. 4 is an illustration of example fingerprinting processes;

FIG. 5 is an illustration of an example system data sharing process;

FIG. 6 illustrates an example household of user devices and persons; and

FIG. 7 illustrates example methods for determining whether an IP address is associated with a home residence.

DESCRIPTION OF EMBODIMENTS

FIG. 1 illustrates a network system 10 supporting a network terminal identification process in accordance with a non-limiting example. In this example, the network system 10 includes one or more analysis servers 12, one or more advertiser servers 14 and one or more publisher servers 16. The system at 10 may further include other computers, servers or computerized systems such as user devices 18. In this example, the analysis servers 12, advertiser servers 14, publisher servers 16, and user devices (“network terminals”) 18 can communicate by a wide area network such as the Internet 20 (also known as a “global network” or a “wide area network” or “WAN” operating with TCP/IP packet protocols).

The analysis servers 12 can be implemented as a single server or as a number of servers, such as a server farm and/or virtual servers, as will be appreciated by those of skill in the art. Alternatively, the functionality of the analysis servers 12 may be implemented elsewhere in the network system 10 such as on an advertiser server 14, as indicated at 12A, on the publisher server 16, as indicated at 12B, or as part as cloud computing as indicated at 12C, all being non-limiting examples. As will be appreciated by those of skill in the art, the processes of analysis servers 12 may be distributed within network system 10.

In the example of FIG. 1, the network system 10 includes a plurality of advertiser servers 14 {ADV. 1, ADV. 2, . . . , ADV. N}. ADV. 1 can be, for example, a manufacturer of soft drinks, ADV. 2 can be a computer manufacturer and ADV. N can be, for example, an accounting firm. Alternatively, an advertiser can be an advertising agency acting as a middleman in the purchase of advertising for a client, can be an advertising (“ad”) network, or be an ad exchange. While each of the advertiser servers 14 may be implemented as a single computer, such as a network server, they can also represent other computer configurations, such as a computing cluster on a local area network (LAN).

It should further be noted that, in some instances, an ad network is, essentially, transparent to advertisers, publishers or both. That is, an ad network may be considered to be a publisher or collection of publishers to an advertiser and/or an ad network may be considered to be an advertiser or collection of advertisers to a publisher.

The publisher servers 16 can each represent one or more servers, such as a server farm. In the example of FIG. 1, the network system 10 includes a plurality of publisher servers 16 {PUB. 1, PUB. 2, . . . , PUB. M}. For example, PUB. 1 can be an Internet portal, PUB. 2 can be a search engine, and PUB. M can be a news website. As noted previously, one or more of the publisher servers 16 can implement some or all of the functionality of analysis servers 12.

It should be noted that the selection of publishers can be enhanced by categorizing the publishers by, for example, content. That is, a “publisher” can be a single legal entity, or a subset of that entity, or a part of a group of entities, by way of several non-limiting examples. For example, a publisher entity may have 1000 publications of which 100 are directed to dramatic content, 100 are directed to comedy, etc. The subset of publications of the publisher entity having a common thematic content may be considered a “publisher.” Furthermore, “publishers” may include a group of publications provided by different agencies which conform to a theme such as, by way of non-limiting examples, drama, sports or entertainment. Also, a “publisher” can be, by way of further non-limiting example, and application (“app”) executing on a smartphone, tablet, game unit, etc.

User devices 18 can be any type of terminal, screen or device including, by way of non-limiting examples, a computer 18A, a connected TV (a/k/a Smart TV or CTV) 18D, a tablet 18B and a smartphone 18C. Other non-limiting examples of user devices are Roku® streaming Internet players, game units such as the Sony PS3® and the Microsoft. Xbox®, etc. Distinguishing characteristics of user devices 18 include connectivity to the Internet 20 and the inclusion of, or access to, display screens which can display, for example, advertisements delivered to the network terminals over the Internet.

FIG. 2 is a simplified block diagram of a computer and/or server 22 suitable for use in network system 10. By way of non-limiting example, computer 22 includes a microprocessor 24 coupled to a memory bus 26 and an input/output (I/O) bus 30. A number of memory and/or other high speed devices may be coupled to memory bus 26 such as the RAM 32, SRAM 34 and VRAM 36. Attached to the I/O bus 30 are various I/O devices such as mass storage 38, network interface 40, and other I/O 42. As will be appreciated by those of skill in the art, there are a number of computer readable media available to the microprocessor 24 such as the RAM 32, SRAM 34, VRAM 36 and mass storage 38. The network interface 40 and other I/O 42 also may include computer readable media such as registers, caches, buffers, etc. Mass storage 38 can be of various types including hard disk drives, optical drives and flash drives, to name a few.

FIG. 3 illustrates, by way of example and not limitation, a network terminal 18, a Publisher 43 and an Ad Fulfillment System 44. The network terminal 18 is a “connected” device in that it communicates with the Publisher 43 and the Ad Fulfillment System 44 via the Internet. In this non-limiting example, network terminal 18 sends a Request to an Ad Network 46 of Ad Fulfillment System 44 via an SDK, as described in greater detail below.

The Ad Network 46 of this example is associated with a database 47. The Ad Network 46 will reply to the user device Request with a Reply (Ad). The Ad Network, in this example, is coupled to one or more Advertisers 48 and to one or more Ad Exchanges 50. The Ad Exchanges, in turn, can be coupled to one or more Advertisers 52, one or more Ad Networks 54, etc.

It will be appreciated that the network of the Ad Fulfillment System 44 can include other computers, databases and servers, e.g. Advertisers 56 and 58 connected to the Ad Network 54. However, at some point latency becomes a issue in that the person using the user device will typically only wait for a short period of time for an advertisement before “clicking out” and moving on to another screen.

It will be further appreciated that, in this non-limiting example, the Ad Network 46 is a gateway for the fulfillment of the ad request by the network terminal 18. The request to the Ad Network 46 can be accomplished, by way of example, with an ad network SDK (Software Development Kit) 59 which allows the user device to send a request to the URL (Universal Resource Locator) of in this example, Ad Network 46. The SDK can, for example, be embedded in a player provided to the network terminal 18 by Publisher 43. A Request will include, as a minimum, the IP address of network terminal 18 so that the Ad Network 46 may send its Reply. However, the SDK may provide additional information concerning, by way of non-limiting example, the user, the user device, its environment and/or how it is being used (“Attributes”) to the Ad Network 46 that can be useful in determining an appropriate advertisement to be sent to the network terminal 18.

When the network terminal 18 is a computer 18A, or another user device that can support a web browser, part of the Request can include what is known as a “cookie.” A cookie is a relatively small file of information about a user device which may include demographics, personal information, browser history, context and other information or Attributes that can help with the ad selection process. However, cookies are being increasingly disabled and/or blocked for privacy purposes and they are not generally used on user devices (such as many mobile devices) by application programs (“apps”) that don't implement a web browser. However, Attributes can be provided by user devices in other ways, such as by the applications (“apps”) themselves.

In an embodiment, set forth by way of example and not limitation, software can be provided in each network terminal 18 which can provide terminal information that can form the basis of a “fingerprint” for that terminal. For example, YuMe, Inc. of Redwood City, Calif. embeds the customized software SDK 59 into user devices such as CTVs, smartphones, tablets and personal computers (PCs) which can provide a variety of information to, for example, their analysis servers 12 or advertisers 14, SDKs can be used to collect valuable real-time, continuous, network terminal information (“data”) that can be saved and aggregated into a central decision-making engine. By way of non-limiting examples, information that can be derived from a terminal device 18 for the purpose of fingerprinting can include the size of the screen, fonts, the time zone, GPS, operating system versions, what plugins are available, what application the user is currently in, and other features or information that can, for example, be provided to an advertiser 14 as part of an advertisement (“ad”) request.

By way of further non-limiting example, a network terminal 18 can be defined as a screen user device which has had installed upon it a unique SDK 59 which communicates with a server, such as an analysis server 12 or an advertiser server 14. By using information sent by the SDK for a network terminal 18 a terminal “fingerprint” can be developed using, for example, configuration settings and other observable characteristics by the SDK. Terminal fingerprinting allows for the identification or re-identification of a visiting terminal for such purposes as authenticating a terminal, to identify a user, to track and correlate a user's activity within and across sessions, and to collect information from which inferences can be drawn about a user.

In an embodiment, set forth by way of example but not limitation, a “terminal fingerprint” can include a homogeneous set of fields that describe a specific user device at a specific point in time. In this example, the fields can be collected via a variety of mechanism. In certain embodiments, missing fields can be considered part of the fingerprint.

It will be appreciated that a fingerprint of a given network terminal may change over time due to changes in software versions, browser plugins, network configurations etc. To address this fact, prior versions (“historical set”) of a network terminal's fingerprint may be stored in a database. In a non-limiting example, a new fingerprint preferably matches the most recent fingerprint of the historical set within a certain threshold.

As used herein, a “terminal ID” is preferably a unique, algorithmically generated identification (“ID”) that is assigned to the historical set of terminal fingerprints for a given terminal. A “match probability” reflects the probability that two fingerprints are from the same network terminal. The match probability can be normalized between the values of 0 and 1, for example, such that two fingerprints are more similar when the probability is closer to 1 and more dissimilar when the probability is closer to 0. A “match threshold” can be defined as the threshold of the match probability above which a fingerprint is considered to be from the same network terminal. If, for example, multiple fingerprints have a match probability above the threshold then the one with the highest score can be considered to be a match.

FIG. 4 illustrates, by way of example and not limitation, network terminal fingerprinting processes 60, which span several systems. In this example, an Internet user 62, e.g. a user of a network terminal 18, uses a service 64 and, optionally, configures privacy settings 66. A fingerprinting service 68, which comprises a computer implemented process executing on, for example, analysis servers 12 or advertisers 14, gathers information 70, uses terminal device information 72 of user 62 and a fingerprint information database 74. The information of process 70 is provided to a device ID database 76. A “Service_A” 78, which is also a computer-implemented process, links “user data” (e.g. the data associated with Internet user 62) to a device ID provided by device ID database 76 in an operation 80 to provide a service 82 to user 62. Service_A 78 comprises a computer implemented process executing on, for example, an advertiser 14. By way of non-limiting example, Service_A 78 can be a video ad server providing an advertisement for the network terminal 18 of the user 62.

FIG. 5 illustrates, by way of example and not limitation, a system data sharing process 84. In this example, Service_A 78 shares user data 86 using device ID database 76. A “Service_B” 90 likewise shares user data 90 using device ID database 76. In this fashion, the knowledge base concerning the user(s) of a terminal device having a device ID in device ID database 76 can be expanded to provide ever-better tailored services for the user 62.

In FIG. 6, a Household 92 is illustrated. By “household” it is generally meant a residential household including at least one, but often several, resident(s), although the term “household” can sometimes refer to other social groups, e.g. businesses or organizations which can include multiple screens, multiple members and sometimes multiple locations. Each “household” will have certain attributes which can be targeted for the more effective implementations of advertising campaigns.

In the non-limiting example of FIG. 6, a “household” refers to a collection of devices 18 and persons 94 that are associated with a home residence 96. The devices 18 can be identified using the techniques described herein, including fingerprinting, cookies, etc. In certain non-limiting embodiments, Household 92 is identified by a Household Identifier (a/k/a “Household ID” and “HID”), that can be stored in, for example, database 47 (see FIG. 3). By way of non-limiting example, home residence 96 can be connected to the Internet 20 by a transmission media 98 such as cable, fiber optic, twisted pair and wireless transmission media. In this example, the transmission media is coupled to a WiFi hub 100 having an associated IP (Internet Protocol) address HIP. As will be appreciated by those of skill in the art, the HIP address may change upon occasion, either due to a resetting by the ISP (Internet Service Provider) or by the household members. In such cases, the HID is updated to associate the user devices 18 and persons 94 associated with the new HIP.

In this non-limiting example, the WiFi hub 100 communicates through a wired (e.g. Ethernet) connection with devices D1 and D2 and wirelessly with user devices D3, D4 and D5. For example, device D1 can be a desktop computer, device D2 can be a CTV, device D3 can be a tablet computer, device D4 can be a laptop computer, and device D5 can be a smartphone. Since each of these user devices 18 are communicating with the WiFi hub 100, they will all have the same HIP when they are physically within (or nearby) the Household 60. As will be discussed subsequently, determining that the user devices D1-D5 and persons 94 are associated with the Household 92 allows a HID to be assigned to those devices and persons. The HID is a useful tool in providing appropriate ads to the user devices. Furthermore, the HID is transferrable if the household with which it is associated moves to a new home.

It will be appreciated from the foregoing that the HIP alone may be enough to identify a Household 90. This is because certain IP addresses are known to be associated exclusively with residential areas. However, in some instances, it may be uncertain whether an IP address is associated, in whole or in part, with a residential area. In such cases, it is desirable to confirm that the IP address is, in fact, associated with a home residence.

As illustrated in FIG. 7, home residence 96 may be located geographically by using certain attributes provided by the devices 18 when requesting an advertisement. For example, the attributes of LAT (latitude), LONG (longitude) and/or zip code (“94022” in this example) may be provided as part of an ad request. Also, a cellular (“cell”) tower ID (“CID”) may be provided by as an Attribute if provided during an Ad Request. These and other Attributes can help geographically locate the Household 60 by using such tools as Google Maps, by way of non-limiting example.

Although various examples have been described using specific terms and devices, such description is for illustrative purposes only. The words used are words of description rather than of limitation. It is to be understood that changes and variations may be made by those of ordinary skill in the art without departing from the spirit or the scope of any examples described herein. In addition, it should be understood that aspects of various other examples may be interchanged either in whole or in part. It is therefore intended that the claims be interpreted in accordance with the true spirit and scope of the invention without limitation or estoppel. 

What is claimed is:
 1. A system for identifying network terminals comprising: a network terminal having a first digital processor, a first non-transient computer readable media, and a first network interface, where the first computer readable media includes program instructions executable on the first digital processor for: initiating a service request by an Internet user with the network terminal; and transmitting network terminal information via the first network interface; and a fingerprinting service system including a second digital processor, a second non-transient computer readable media, and a second network interface, the second computer readable media including program instructions executable on the second digital processor for: receiving the network terminal information via the second network interface; using the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and storing the Device ID and user data in a Device ID database.
 2. A system for identifying network terminals as recited in claim 1 further comprising: a service providing system including a third digital processor, a third non-transient computer readable media, and a third network interface, the third computer readable media including program instructions executable on the third digital processor for: retrieving user data related to the network terminal from the Device ID database; and providing a service to the Internet user that is configured for the Internet user in accordance with user data.
 3. A system for identifying network terminals as recited in claim 1 wherein the network terminal is configured by a Software Development Kit (SDK) to provide program instructions in the first computer readable media.
 4. A system for identifying network terminals as recited in claim 1 wherein the Internet user is using a connected user device.
 5. A system for identifying network terminals as recited in claim 4 wherein the connected user device is one of a CTV, smartphone, tablet and personal computer (PC).
 6. A system for identifying network terminals as recited in claim 1 wherein the fingerprinting service system comprises one or more servers connected to the Internet.
 7. A method for identifying network terminals comprising: initiating a service request at a network terminal by an Internet user; and transmitting network terminal information from the network terminal to a fingerprinting service which: uses the network terminal information and a fingerprint information database to produce a Device ID for the network terminal; and stores the Device ID and user data concerning the Internet user in a Device ID database.
 8. A method for identifying network terminals as recited in claim 7 wherein the fingerprinting service is provided by at least one server coupled to the Internet.
 9. A method for identifying network terminals recited in claim 8 further comprising: retrieving user data related to the user device from the Device ID database; and providing a service to the Internet user that is configured for the Internet user in accordance with the user data.
 10. A method for identifying network terminals as recited in claim 9 wherein retrieving user data and providing a service is provided by at least one server coupled to the Internet.
 11. A method for identifying network terminals as recited in claim 7 wherein the network terminal is one of a CTV, smartphone, tablet and personal computer (PC).
 12. A method for identifying network terminals as recited in claim 7 wherein the network terminal is configured with a Software Development Kit (SDK) to assist with transmitting the network terminal information. 